Cognitive radio engine based on genetic algorithms in a network

ABSTRACT

A genetic algorithm (GA) approach is used to adapt a wireless radio to a changing environment. A cognitive radio engine implements three algorithms; a wireless channel genetic algorithm (WCGA), a cognitive system monitor (CSM) and a wireless system genetic algorithm (WSGA). A chaotic search with controllable boundaries allows the cognitive radio engine to seek out and discover unique solutions efficiently. By being able to control the search space by limiting the number of generations, crossover rates, mutation rates, fitness evaluations, etc., the cognitive system can ensure legal and regulatory compliance as well as efficient searches. The versatility of the cognitive process can be applied to any adaptive radio. The cognitive system defines the radio chromosome, where each gene represents a radio parameter such as transmit power, frequency, modulation, etc. The adaptation process of the WSGA is performed on the chromosomes to develop new values for each gene, which is then used to adapt the radio settings.

GOVERNMENT LICENSE RIGHTS

The U.S. Government has a paid-up license in this invention and theright in limited circumstances to require the patent owner to licenseothers on reasonable terms as provided for by the terms of NSF GrantNumbers EIA9983463 and DGE-9987586.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to radio systems providingwireless voice and data links in networks, and more particularly, to acognitive radio engine architecture which is capable of working underchanging and unanticipated circumstances and in the presence of hostilejammers and interferers. The cognitive radio engine is capable ofcontinuously adapting to its environment to conserve resources, such asradio frequency spectrum and battery power, in those applications wherethose resources are at a premium.

2. Background Description

Most traditional radios have their technical characteristics set at thetime of manufacture. More recently, radios have been built that selfadapt to one of several preprogrammed radio frequency (RF) environmentsthat might be encountered. Cognitive radios go beyond preprogrammedsettings to operate both in known and unknown wireless channels.

A cognitive radio can sense its environment and alter its technicalcharacteristics and operational behavior to benefit both itself and itsgeographical and spectral neighbors. The ability to sense and respondintelligently distinguishes cognitive radios from fixed or adaptiveradios. The characteristics of fixed radios are set at the time ofmanufacture. An adaptive radio can responds to channel conditions thatrepresent one of a limited set of anticipated events. Adaptive radiosuse artificial intelligence (AI) algorithms that are basically a seriesof “IF, THEN, ELSE” algorithms. The radio may fail to take any usefulaction if it meets conditions that its designers never anticipated.

In contrast, a cognitive radio can respond intelligently to anunanticipated event; i.e., a wireless environment (channel) that itnever encountered before. The result is enhanced performance(throughput, quality of service (QOS), and security) for the cognitiveradio's network and reduced interference to other networks.

The Oxford English Dictionary (OED) defines “cognitive” as “pertainingto cognition, or to the action or process of knowing”, and “cognition”is defined as “the action or faculty of knowing taken in its widestsense, including sensation, perception, conception, etc., asdistinguished from feeling and volition”. Given these definitions, theprocess of sensing an existing wireless channel, evolving a radio'soperation to accommodate the perceived wireless channel, and evaluatingwhat happens is appropriately termed a cognitive process. This approachincludes both awareness of the wireless channel and judgment of the bestpossible action to take given this knowledge.

Most cognitive computing systems to date have been based on expertsystems and neural networks. Such systems can be quite brittle in theface of unknown environments or else they require extensive training.

SUMMARY OF THE INVENTION

It is therefore an object of the present invention to provide acognitive radio architecture based on genetic algorithms capable ofadapting to unknown and unexpected environments.

According to the invention, there is provided a cognitive radioarchitecture which is based on biologically based models of cognitioninspired by child development theories of two-way associative learningthrough play. The cognitive model of the invention imitates the abilityof young minds to adapt rapidly to new situations. Genetic algorithmsare well suited for this task because of their ability to find globalsolutions to changing solution spaces that are often quite irregular.Genetic algorithms are (a) able to synthesize best practices through thecrossover operation and (b) enable spontaneous inspiration andcreativity through the mutation operation. The multi-tiered geneticalgorithm architecture of the invention allows sensing of a wirelesschannel at the waveform or symbol level, on-the-fly evolution of theradio's operational parameters, and cognitive functions through use of alearning classifier, meta-genetic algorithm, short and long term memoryand control.

The invention has application in military and disaster communications,where radio systems must work under changing and unanticipatedcircumstances and in the presence of hostile jammers and interferences.The invention also has application in civilian radio communicationsystems such as cellular telephones, where spectrum and battery powerare at a premium and in which the radios must continuously adapt toconserve these resources.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, aspects and advantages will be betterunderstood from the following detailed description of a preferredembodiment of the invention with reference to the drawings, in which:

FIG. 1 is a block diagram of an implementation of the cognitive radioengine in a network;

FIG. 2 is a concept-level block diagram of the cognitive radio engine ofthe invention;

FIG. 3 is a system-level block diagram of the cognitive radio engine ofthe invention;

FIG. 4 is a system-level flowchart of the operation of the cognitiveradio engine of the invention;

FIG. 5 is a block diagram of the cognitive system monitor (CSM)according to the invention;

FIG. 6 is a detailed block diagram of the CSM according to theinvention;

FIG. 7 is a flowchart of the operation of the CSM according to theinvention;

FIG. 8 is a flowchart showing the “Learning Channel Classifier” routinein the process of FIG. 7;

FIG. 9 is a flowchart showing the “Update LTM” routine in the process ofFIG. 7;

FIG. 10 is a flowchart showing the “Populate STM” routine in the processof FIG. 7;

FIG. 11 is a flowchart showing the “Radio Performance Read” routine inthe process of FIG. 7;

FIG. 12 is a flowchart showing the “Goal Optimizer” routine in theprocess of FIG. 7;

FIG. 13 is a flowchart showing the “Transmit Goal” routine in theprocess of FIG. 7;

FIG. 14 is a block diagram of the wireless channel genetic algorithm(WCGA) according to the invention;

FIG. 15 is a block diagram illustrating a specific instantiation of theWCGA for modeling bust errors with genetic algorithm (GA) trained HiddenMarkov Models (HMMs);

FIG. 16 is a flowchart of the operation of the WCGA according to theinvention;

FIG. 17 is a flowchart showing the operation of the “CalculateStatistics” routine in the process of FIG. 7;

FIG. 18 is a flowchart of the “Initialize Population” routine in theprocess of FIG. 17;

FIG. 19 is a flowchart of the “Evaluate Member” routine in the processof FIG. 17;

FIG. 20 is a flowchart of the “Deconstruct Chromosome” routine in theprocess of FIG. 17;

FIG. 21 is a diagram for the example of N=3, M=2 HMM and chromosome forthe WCGA;

FIG. 22 is a block diagram of the WSGA according to the invention;

FIG. 23 is a flowchart of the operation of the WSGA according to theinvention;

FIG. 24 is a flowchart of the “Initialize Population” routine in theprocess of FIG. 23;

FIG. 25 is a flowchart of the “Evaluate Member” routine in the processof FIG. 23;

FIG. 26 is a flowchart of the “Replace Population” routine in theprocess of FIG. 23;

FIG. 27 is a block diagram of a distributed cognitive engine accordingto the invention;

FIG. 28 is a data map of a standard TCP/IP packet;

FIG. 29 is a data flow diagram showing the event sequence fortransmission of a packet from the WCGA to the CSM;

FIG. 30 is a datagram of the WCGA information packet sent to the CSM ina TCP payload;

FIG. 31 is a data flow diagram showing the event sequence fortransmission of a packet from the CSM to the WSGA;

FIG. 32 is a datagram of the WSGA information packet sent to the CSM ina TCP payload;

FIG. 33 is a data flow diagram showing the event sequence for thetransmission of a packet from the WSGA to the CSM; and

FIG. 34 is a datagram of the CSM information packet sent to the CSM in aTCP payload.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT OF THE INVENTION

Referring now to the drawings, and more particularly to FIG. 1, there isshown an example of an implementation of the cognitive radio systemaccording to the invention in a network having a broadband wireless RFlink. The network comprises a first plurality of broadband users 10 ₁ to10 _(n) connected to a first router 11 and a second plurality ofbroadband users 12 ₁ to 12 _(n) connected to a second router 13. Thefirst and second routers 11 and 13 are connected by means of a cognitiveradio link 15 established by a first adaptive radio 16 controlled by acognitive radio engine 16 a connected to router 11 and a second adaptiveradio 17 controlled by a cognitive radio engine 17 a connected to router13. In this example, the router 11 is connected to a general internetprotocol (IP) network, represented by a cloud 18. There is present inthe illustrated environment a radio 19 which is a source of interferenceto the cognitive radio link 15. It is the function of the cognitiveradio engines 16 a and 17 a to control their respective adaptive radios16 and 17 so as to minimize or eliminate the interference generated bythe radio 19 to maximize performance without obstructing the operationof radio 19.

FIG. 2 shows in block diagram form the conceptual components of thecognitive engine. These include a monitor and control component 21, thefunction of which is to exploit trends, an adaptation and processcomponent 22, the purpose of which is learning, and resources components23 and 24, respectively concerned with the environment and the radio.

FIG. 3 shows in more detail the architecture of the cognitive engine.The channel 30, providing data and RF signals, is connected to the radiohardware 32 which, in turn, is connected to the cognitive engine 34. Theradio hardware 32, in addition to the usual RF and conversion circuitry,includes a channel estimation process 321 and a radio baseband processor322. The output of the channel estimation process 321 is input to thewireless channel genetic algorithm (WCGA) module 341 of the cognitiveengine 34. This module generates an HMM channel model which is input tothe cognitive system monitor (CSM) 342. The CSM 342 also receives radioparameters and performance statistics from the radio baseband processor322. The CSM 342 generates evaluation functions, associated weights,child chromosomes, and templates which are input to the wireless systemgenetic algorithm (WSGA) module 343. The evaluation functions, weights,child chromosomes, and a template are referred to as the WSGAinformation packet. The WSGA 343 generates radio parameters which areapplied to the radio baseband processor to adapt the radio to thechanging environment.

FIG. 4 shows the process implemented by the cognitive engine. Theprocess begins by initializing the radio with default settings in theinitialization block 401. The WCGA 341 collects information from thechannel estimation process 321 and models the channel in function block402. A test is made in decision block 403 to determine if the channelmodel is complete. If not, the process loops back to function block 402,but if the model is complete, the channel model is passed to the CSM 342in function block 404. In function block 405, the CSM 342 determines ifa new radio configuration is needed, builds trends from the WCGA 341 andradio statistics, and develops a WSGA information packet for the WSGA343. A test is made in decision block 406 to determine if the systemneeds a new configuration. If not, the process loops back to functionblock 405; otherwise, a WSGA information packet is passed to the WSGA343 in function block 407. In function block 408, the WSGA 343 developsa system chromosome and creates fitness from mathematical idealizationof radio performance. A test is then made in decision block 409 todetermine if the new system developed by the WSGA 343 is close tooptimization. If not, the process loops back to function block 408;otherwise, the new system configuration is passed to the baseband radiosystem 322 in function block 410. The baseband radio system 322 thenreconfigures itself in function block 411. Thereafter, the radio systemmonitors its performance and collects statistics (bit error rate (BER),data rate, etc.) in function block 412. These radio performanceparameters are collected in function block 413 and input to the CSM atfunction block 405. The process shown in this flowchart is cyclical andruns continuously.

FIG. 5 is a block diagram of the CSM showing the functionalrelationships of the several components of FIG. 3. The radio hardware,here shown as block 50, generates radio feedback parameters 501 whichare input to the CSM, here shown as block 51. The CSM 51 is alsoconnected to the WCGA and WSGA, here shown as blocks 52 and 53,respectively. More particularly, the WCGA 52, through its TCP/IP(transport control protocol/internet protocol) socket layer 521,interfaces with the corresponding socket layer 511 of the CSM 51, whilethe WSGA 53, through its TCP/IP socket layer 531 with the correspondingsocket layer 512 of the CSM 51. The CSM 51 includes, among other things,a knowledge base (KB) in long term memory (LTM) 513. The CSM 51classifies observed environment (i.e., the channel model), updates theknowledge base in long term memory, and synthesizes an informationpacket for the WSGA (e.g., fitness function, initial population,weights, and templates). TCP_KB_PORT is an optional feature to allowsocket-layer communications with LTM stored on a remote radio system ina distributed implemenation.

FIG. 6 shows in more detail the structure of the CSM 51, and in thisfigure like reference numerals to those in FIG. 5 represent the same ofsimilar components. An observed channel and location buffer 601 receivesinput from the WCGA 52 via the TCP/IP socket layer 511 and radioparameters from the radio and WSGA performance API (application programinterface) 602. The data in this buffer is supplied to a channelstatistics processor 603. The statistics computed by the processor 603are input to a learning channel classifier 604 which, in turn, providesoutputs to a short term memory (STM) 605 and a channel updater 606. Thechannel updater 606 generates a pointer to a TCP/IP link converter inthe cognitive knowledge base in the long term memory (LTM) 513. The LTM513 interfaces with the short term memory (STM) 605 which, in turn,interfaces with the goal evolver 607. The goal evolver 607 also receivesinput from the radio and WSGA performance API 602 and provides an outputto the estimated radio goal and location buffer 608. The data in thisbuffer is provided to the WSGA 53.

The CSM 51 is an evolutionary algorithm that is the core of thecognitive radio intelligence and directs all knowledge gained from thesensing processes to the adapting processes. The CSM 51 is a meta-GA(genetic algorithm), serving as short and long term memory to understandand utilize past trends in system behavior. The CSM 51 is the creativeside of the cognitive radio brain. The WSGA 53 takes direction from theCSM 51 and performs its own genetic algorithm (GA) to redesign the radioconfiguration. The WSGA 53 is the logical side of the cognitive radiobrain. The WSGA 53 acts upon a chromosome containing parameters liketransmitter power, frequency, bandwidth, modulation, channel coding,etc. It understands the regulatory and physical environment and passes atemplates to the GA informing the GA what parameters may be legallyaltered and what parameters should be left alone, based on the knowledgegained from the best trends. The WSGA 53 also receives the fitnessevaluation to direct the algorithm in how it should attempt to evolve.For example, the fitness could be a measure of the minimum BER, minimumpower consumption, maximum carrier to noise ratio (C/N), minimumlatency, maximum data rate, or a combination of these. The GA willattempt to optimize these fitness functions. Depending on whatinformation the CSM 51 receives from the system and the WCGA 52 sensingalgorithm, the fitness function may change to achieve new goals. TheWSGA 53 works within the knowledge established by the CSM 51 to find aconfiguration that should work. The WSGA 53 then passes the new radioconfiguration to the RF and digital baseband equipment, which thenreconfigures itself. After the radio tries the new configuration, theCSM 51 will evaluate the radio's performance to assess the success ofthe configuration. If the CSM 51 determines that the radio's performanceis not optimum, it will inform the WSGA 53 that a new configuration isneeded.

The task of the WCGA 52 is to sense the environment and model it asaccurately as possible to provide information about the multipathenvironment or other interferences that can cause errors in the channel.The environmental information is then sent to the CSM 51 for processing.The CSM 51 can then use the model to evaluate what functions areapplicable to the current channel. Based on the environment, the CSM 51can determine how best to analyze the system configuration, whatperformance to attempt to achieve, and how best to set the fitnessevaluation function for the WSGA 53 so that the fitness of the systemchromosome will converge upon the appropriate radio settings.

As an example, consider a radio designed for the Unlicensed NationalInformation Infrastructure (UNII) band. The WCGA 52 first models thechannel and then the CSM 51 estimates the maximum data rate achievablewithin the system given its knowledge of that channel. The CSM 51 willinform the WSGA 53 to use the data rate as its fitness evaluation andpass the maximum data rate as the fitness goal to achieve. Usingchromosome coding and genetic tagging of the information requested, theCSM 51 will also tell the WSGA 53 that it is limited by the frequencyand bandwidth of the UNII band. The WSGA 53 will perform the GA toproduce new system configurations and test them based on two metrics:does the new configuration meet the regulatory requirements and does itachieve the data rate requirement? When the WSGA 53 is satisfied thatthe regulatory requirements are met and that the data rate requirementis close to being achieved based on the fitness evaluation that it wasprovided by the CSM 51, it sends the information to the radio forreconfiguration. Artificial intelligence researchers would consider theWSGA 53 as working with “simulations”, while the CSM 51 monitors“reality”, which means that the simulated results will often deviatefrom the actual radio performance. Therefore, the CSM 51 will have tomonitor how the radio performs so that it can instruct the WSGA 53 if anew configuration is required.

The process implemented by the CSM 51 is illustrated in the flowchart ofFIG. 7, to which reference is now made. The process begins in inputblock 701 where the observed channel from the WCGA 52 is read into theobserved channel and location buffer 601. The channel metric calculator603 then calculates the ranking metric of the observed channel infunction block 702. The ranking metric can be anything thatdistinguishes the channel like average bit error rate or average bursterror length, which is the current metric being used. The learningchannel classifier 604 finds the closest match to the observed channelin long term memory (LTM) in function block 703. This is done by GAchannel index search by the ranking metric or by binary tree search bythe ranking metric. Any change is indicated to the goal evolver 607 viathe short term memory (STM) 605. The LTM 513 is updated in functionblock 704. The STM 605 is populated in function block 705 with knowledgebase chromosomes in LTM 513 containing similar channels. In functionblock 706, radio performance parameter and existing WSGA simulationfitness, population, tags and templates are read into the goal evolver607. Goals in the STM 605 are crossed over or mutated with estimatedradio goal for the observed channel in function block 707. Then, indecision block 708, a test is made to determine if the optimal goal hasbeen chosen. If not, the process loops back to function block 707, butif so, the data in estimated radio goal and location buffer 608 isformatted into an information packet for the WSGA 53 in function block709. The formatted packet is then transmitted to the WSGA 53 in outputblock 710, and the process returns to input block 701. The algorithm isa never-ending loop while the radio is operational to provide continuousevolution of the radio's settings to either continually search for amore optimal solution, or to adapt the radio in a time-varying channel.

FIG. 8 is the flowchart for the learning channel classifier routine offunction block 703 in FIG. 7. The input 801 is the computed rankingmetric from the channel statistics processor 603. The channel statisticsare converted to channel cluster index j, using best fit weights, infunction block 802. The statistics of the observed channel are comparedwith those of the corresponding channel stored in long term memory 513in function block 803. A test is made in decision block 804 to determineif the comparison matches within a predetermined difference (delta). Ifso, the location of the estimated channel j is stored in register m, apointer in the CSM to a member of LTM 513, in function block 805;otherwise, a new candidate is selected from LTM 513 in function block806, and a return is made to function block 803.

FIG. 9 is the flowchart for the update LTM routine in function block 704in FIG. 7. The input 901 is new member. A ranking metric of the observedchannel is calculated in function block 902. A test is made in decisionblock 903 to determine if the current LTMLength is equal to zero. If itis, the observed channel is placed in the first position of LTM in block904 and the function exits at 905. Otherwise, the length of LTM iscompared the MaxLTMLength, the maximum possible length of the LTMmember, in decision block 906. If the current length is less than themaximum length, function block 907 determines what member of thepopulation, pointed to by register m has the closest matching rankingmetric to the observed channel. If the metrics are the same asdetermined in decision block 908, there is no need to update LTM, so thefunction exits 909. If the metrics are different, the observed channelis inserted into LTM at position pointed to by m at block 910. Thecurrent LTM length is then incremented by function block 911. It isimportant to note that the channel that matched closest to the observedchannel is not replaced, the new channel is just inserted at thisposition to maintain proper order based on the ranking metric in LTM.

If the current LTM length equals the maximum LTM length from block 912,block 913 finds the closest matching member of LTM like block 907 did.The differences in the metrics between the observed channel and the twosurrounding channels of LTM member m is calculated in block 914 as ε₀and the difference between LTM member m and its two surroundingneighbors is calculated as ε_(m), where μ is the Euclidean distancebetween the LTM members surrounding m. Decision block 915 determines ifε₀ is less than ε_(m), whereby the current member of LTM at position mis replaced by the new channel in block 916 and the function exits at917; otherwise, the current LTM member is not replaced and the functionexits at 917. This algorithm ensures that LTM exists of observedchannels that maximize the distance between any two members to provideas wide a scope of the possible channels as possible.

FIG. 10 is the flowchart for the populate STM routine in function block705 in FIG. 7. The register m as developed in block 704 is passed tothis function in block 1001. If the current LTM length is less thanMaxSTMLength, the maximum number of members short term memory (STM) canhold, as decided in block 1002, then block 1003 sets CurrentSTMLength,the current length of STM, to the current length of LTM. Otherwise,block 1004 sets the current STM length to the maximum STM length. Block1005 begins a loop which takes LTM members at m minus i, an index valuethat starts at 0 and increments in steps of 1 to CurrentSTMLength/2, andplaces them into STM in block 1006. Block 1007 initializes j, anotherindex value, to zero. Index i is then set in block 1008 to the middle ofthe current STM member to populate the upper half of STM. If the index iis less than CurrentSTMLength, as determined in decision block 1009,block 1010 populates the upper half of STM by member of LTM at m plus j.Block 1011 increments index j. When loop 1009 exits, STM is fullypopulated with the LTM members surrounding the closest matching memberof LTM to the observed channel, m and the routine exits at 1012.

FIG. 11 is the flowchart for the read radio performance parametersroutine in function block 706 in FIG. 7. The inputs 1101 are the radiofeedback parameters read by the radio performance API (applicationprogram interface). These include such things as BER (bit error rate)power, battery life, etc. The radio performance API stores the radioparameters in a buffer to be read by the goal evolver 607 in functionblock 1102. The output 1103 is a signal to the goal evolver 607 that newradio performance values are available.

FIG. 12 is the flowchart for the goal optimizer routine in functionblock 707 and decision block 708 in FIG. 7. The inputs 1201 are theradio performance parameters and existing WSGA simulation fitness,population, and templates. Block 1202 compares the simulated meters,f_(WSGA) with the actual observed parameters from the radio, f_(radio).The differences shows how far the WSGA simulation was from the actualoperation of the radio. From here, it can be determined how necessary anew configuration is required, or learn about behavior to avoid orpromote in the future. Block 1203 ranks the members of STM in respect totwo objectives: similarity and utility (drawing from decision theoryvocabulary). The similarity functions determine how close the observedchannel is to each member in the short term memory, and the utilityfunction determines how successful each member of STM has been in thepast. Poor performing members of memory lose worth over time andsuccessful members gain worth. The candidate member of STM is thatmember who maximizes both similarity and utility. In the terms of FIG.12, the goal vectors refer to the information sent to the WSGA aboutwhat the channel is and how it should be evaluated (fitness functions,weights, template, and child chromosomes).

The STM then undergoes manipulation through a genetic algorithm in block1204, which is an evolutionary process that attempts to alter the goalvectors of the poor performing channels by combining successful piecesof goal vectors from other members of STM. Block 1205 illustrates how amember of STM may look, with the channel on the left, which is used todetermine the similarity function, and goals in the vector on the right.In this case, the genetic algorithm in 1204 attempts to alter the goalvectors of the listed channel by combining goals A, B, C, and D fromdifferent members of STM. These become the new goal vector associatedwith that channel, which will hopefully produce a better utilityfunction than the previous goal vector. This process attempts to “play”with past behavior to learn better ways of behaving in the future.

The STM member that was chosen for the highest similarity and utility isthen sent to the WSGA to create a new set of radio parameters in block1206. Block 1207 shows the WSGA sending the new system chromosome backto the CSM as well as the simulated parameters. Block 1208 shows theradio transmitting the actual parameters associated with the new systemchromosome back to the CSM. Blocks 1207 and 1208 run independent of theCSM, and so they must be asynchronously timed where the informationcoming from either entity (the WSGA or the radio) can come at any giventime. When the radio parameters are returned, they are compared to thesimulated parameters by observing the differences between the simulatedand the actual parameters at function block 1209. This information isthen used by block 1210 to update the worth associated with the STMmember used to generate the current system chromosome. If the realsystem performs worse than the simulation, it indicates a problem withthe STM goal vector, and the worth of that STM member is decreased. Ifthe simulated and actual meters are the same, or the actual meters workbetter than the simulated meters, the worth of the associated STM memberis increased. This method is slightly counter-intuitive, because an STMmember can be rewarded if the real system performs better than expected,which indicates that the simulation environment failed; however, inactual operation, it does not matter if the simulation is wrong as longas the values it produces works, so the reward is allowed.

Note that there is no exit to this routine. As stated above, it runsasynchronously and constantly takes in information from the radio, theWSGA, and the rest of the CSM to continually update and adjust themembers' goal vectors in memory.

FIG. 13 is the flowchart for the transmit goal routine in output block710 in FIG. 7. The input 1301 is goal in buffer 608. A TCP (transportcontrol protocol) socket packet with WSGA information is built infunction block 1302. A socket is created in function block 1303, and thecreated socket is bound to an unused local port in function block 1304.The socket is then connected to a remote port in function block 1305,and the TCP packet is sent with the WSGA information to the remotesystem in function block 1306. The process ends by closing theconnection in function block 1307 and exiting at block 1308.

The wireless channel genetic algorithm (WCGA) is, in general, amechanism by which the channel is observed and modeled for use in theCSM. The current instantiation of the WSGA involves the modeling of anywireless channel error using the compact form of a Hidden Markov Model(HMM). FIG. 14 is a block diagram of the WCGA. A channel capturingdevice 1401 (i.e., the channel estimation process 321 in FIG. 3)provides the input to the WCGA 52. The channel capturing device can beany known method of modeling a channel using devices such as a channelsounder, a frequency domain capturing device (Fast Fourier Transformdevice), training data, etc. The WCGA creates a machine-usable model ofthe radio channel. This is transmitted via the TCP/IP socket layer 521to the corresponding TCP/IP socket layer 511 of the CSM 51.

A specific instantiation of the WCGA is shown in FIG. 15. Thisinstantiation models burst errors with GA-trained HMMs. The WCGA uses anerror stream for the input, which is a train of symbols representing thenumber of bit errors per symbol. For the WCGA to produce an accuratemodel, many thousands of error symbols must be collected, which wouldrequire a long training sequence, taking both time and bandwidth. A morecompact and efficient approach to channel modeling is to utilize theinformation collected by the channel sounder. While the channel sounderresponse can provide an immediate understanding of the channel, the datareceived from the sounder is large and bulky. By using the channelsounder response, a model of the channel is derivable by simulating thechannel as a filter with an impulse response derived from the channelsounder. A random bit sequence passed through the simulated channel willproduce an error sequence. Because we are interested in a statisticalmodel of the channel, we can use the simulated channel instead of theerror sequence. The Hidden Markov Model (HMM) of the channel developedby either a true error sequence or a simulated error sequence is still astatistical representation of the channel. However, this representationis very small compared to the channel sounder data and is capable ofrepresenting the channel equally well.

The channel, 1501, is received by a channel sounder 1502, in this casethe broadband channel sounder developed at the Center for WirelessTelecommunications. This channel sounder uses impulse transmitted fromone radio and is captured by the sounder on another radio using asliding correlator sounding technique, which captures a small amount ofenergy from the pulse at different offsets. Because the transmittedpulse is repetitious and the channel is assumed stationary, after Knumber of pulses (in this case, 40000), the entire pulse has beenproperly sampled. This method is a way to use narrowband receivertechniques and parts to capture a broadband signal.

The channel sounder response is in the form of a waveform representativeof the transmitted impulse, and which contains information about thechannel. Block 1503 takes this impulse and converts it to a linear timeinvariant (LTI) model of the channel, h(t), by down-converting thesignal to baseband. Simulated data is then convolved through the LTImodel in block 1504, out of which an error stream comes. The errorstream represents what transmitted symbols would be received as goodsymbols and which would be error symbols. Block 1505 takes the errorstream and calculates statistics stored in Observed_Histogram of block1506.

Block 1507 then generates a randomly initialized WCGA chromosomepopulation according to FIG. 18, which is used to start the geneticalgorithm (GA) of block 1508. The GA performs standard crossover andmutation operations and evaluates each chromosome against the observedchannel histogram in block 1508 by creating a channel histogram from theHMM and finding the sum of the differences between each point in thehistogram as described in FIG. 19. The best fitness is the one closestto zero. After so many generations, the GA exits and transmits the finalHMM model to the CSM via the TCP/IP socket layer of block 521.

FIG. 16 is a flow chart of the process implemented by the WCGA. Theinput 1601 is the channel information. The CWT's Broadband sounder inblock 1602, as described by block 1502, is used to create a channelimpulse response, from the sampled pulse. Like blocks 1503 and 1504,block 1603 develops the mathematical representation, h(t), of thechannel and block 1604 uses h(t) to generate an error stream. Block1605, like 1505, calculates the channel statistics as described in FIG.17, and the histogram from the channel statistics is stored in block1606 as the Observed_Histogram. Block 1607 randomly initializes apopulation of HMM chromosomes according to the routine of FIG. 18.

Block 1608 starts the genetic algorithm loop, which runs until aspecified stopping criteria like a limited number of generations (thecurrently used method), or a certain minimum desired fitness value. Aselection process is used in block 1609, which can be any GA selectionprocess such as tournament or roulette wheel, to choose parents formating. The parents are then genetically manipulated through crossover,block 1610, and mutation, block 1611, to create a new set of offspring.The offspring are then evaluated in block 1612 according to the routinein FIG. 19. The worst members of the current generation are thenreplaced by more fit offspring in block 1613, and the entire populationis evaluated in block 1614 based on the fitness values developed inblock 1612. The best fit member of the population can then be used in1608 to determine if the stopping criteria is met. If the stoppingcriteria is met, the GA exits and the best fit member of the populationis the channel model transmitted to the CSM in block 1615, which exitsthe WCGA routine.

FIG. 17 is the flowchart for the calculate channel statistics routine offunction block 1605 in FIG. 16. The input 1701 is the error steam fromthe observed channel and location buffer 1701. A loop 1702 is initiatedwhich cycles from i=0 through the entire length of the error stream. Thenumber of symbols in the stream is counted 1703, and loop 1704 is usedto count the number of bits represented in the error stream 1705 bycounting from j=0 to the total number of bits per symbol. If the currentsymbol contains an error as tested by 1706, the number of symbol errorand the current burst length are incremented by 1707. The loop initiatedin 1708 tests if any bit in each symbol is an error through decisionblock 1709; all errors are added to the total number of bit errors 1710.If the symbol does not contain any errors as determined in 1706, thecurrent symbol is compared to the previous symbol 1711. If they aredifferent, the burst histogram for the specified burst length isincremented by block 1712. Block 1713 decides if the current burstlength is the longest burst length observed; if so, the longest burstlength observed, as stored in MaxBurstLength, is updated with the newmaximum burst length in block 1714. Block 1715 resets the burst lengthvalue to 1 for the next burst. This algorithm is used to developstatistics of the channel including the maximum burst length, the numberof symbols and bits, the number of symbol and bit errors, the symbolerror rate, the bit error rate, and the histogram of bursts in thechannel as stored in block 1716.

FIG. 18 is a flowchart of the initialize population routine, 1801, infunction block 1603 in FIG. 16. First, a loop of i=0 to length N, thenumber of states in the HMM, is run from block 1802. Block 1803 sets acounter to 0, and a second loop in 1804 runs from j=0 to the number ofstates, N, in order to generate the N×N matrix A of the HMM, 2101. Eachindex j of row i is set to a random floating point number from 0 to 1 inblock 1805 and block 1806 increments the counter by the random valuegenerated in block 1805. Upon completion of this routine, the entire rowi in the A matrix has been filled with values. Since this is aprobability matrix, all of the elements in each row must sum to 1;therefore, block 1807 divides all elements of row i by the sum of allthe elements in that row. The final row vector now sums to 1.

A similar process occurs starting with block 1808, which again sets thecounter to 0. Loop 1809 this time runs from j to M, the number ofoutputs possible at all states (i.e., good symbols and bad symbols foran M of 2). Block 1810 sets the elements of row i of matrix B, 2102, toa randomly generated number from 0 to 1, and, again, the counter isincremented in block 1811. Once loop 1809 finishes, the vector rows ofmatrix B are then normalized in block 1816 to 1 by dividing all theelements by the sum of all the row elements.

Loop 1802 ends, and the {overscore (Pi)} initialization vector of theHMM, 2103, is then initialized. The counter is again set to 0 at block1812, and loop 1813 cycles for j to N to fill all elements of theN-length {overscore (Pi)} vector. Each element is set to a random numberfrom 0 to 1 at block 1814, and the counter is incremented in block 1815.After each element has been set, block 1817 normalizes the vector sothat the elements sum to 1. Block 1818 simply converts all matrices ofthe HMM, A, B, and {overscore (Pi)}, into a single vector to representthe chromosome. FIG. 21 shows the HMM in terms of matrices, 2101, 2102,and 2103, and as a chromosome, 2104. Block 1819 evaluates thechromosome's fitness according to the routine of FIG. 19, and finally,block 1820 exits this routine.

FIG. 19 is a flowchart of the evaluate member routine in function block1608 in FIG. 16. The evaluate routine, 1901, first deconstructs thechromosome back into its HMM form in block 1902 so the HMM can be usedto generate the error stream properly in block 1903. The channelstatistics are then calculated in block 1904 according to FIG. 18. Loop1905 loops from i to MaxBurstLength, which was calculated in block 1904and corresponds to the longest length of successive burst errors for theerror stream. For each burst length, the HMM currently being evaluatedis compared to an observed vector, which is the actual channel. Fitnessin block 1906 is calculated as the sum of the differences between thecurrent channel and the observed channel. When loop 1905 ends, thefitness is returned at block 1907, where a smaller fitness is desired.

FIG. 20 is a flowchart of the deconstruct chromosome routine of 1902.The routine takes in a chromosome at block 2001 and sets an index valueto 0 in block 2002. Loop 2003 cycles through the A matrix of the HMM,2101, going from i=0 to N, the number of HMM states, where an internalloop, 2004, cycles from j=0 to N. Each element in matrix A, A[i][j], isplaced into the chromosome vector at position index, which is thenincremented, in block 2005. When loop 2003 exits, the routine entersloop 2006, which cycles through the B matrix, 2102. Loop 2006 cyclesfrom i=0 to N, and the internal loop, 2007, cycles through j=0 to M, thenumber of output symbols for the HMM. Each element of matrix B, B[i][j],is then sequentially placed after the A matrix into the chromosome atposition index, which is then incremented, in block 2008. Loop 2006exits, and the remaining conversion is to put the {overscore (Pi)}vector, 2103 into the chromosome. Since {overscore (Pi)} is a vector, itonly requires a single loop, 2009, from i=0 to N, when each element,{overscore (Pi)}[i], is placed into the chromosome after the B matrix atposition index, which is again incremented, in block 2010. After the A,B, and {overscore (Pi)} matrices are properly placed into thechromosome, the routine exits at block 2011, which returns thechromosome.

Several chromosome structures were devices that allow the representationof wireless channels. An example of an HMM and the equivalent WCGAchromosome is shown in FIG. 21. Matrix A, 2101, is the N×N statetransition matrix of the HMM. Give a current state, there is a certainprobability of moving to any other of the states or of staying in thesame state. The columns set the current state and the row sets the statebeing transitioned to. For example, element A21 is the probability ofgoing from state 1 to state 2.

Matrix B, 2102, is the N×M state output matrix of the HMM. At any givenstate, represented by the row, there is a probability of outputting acertain output symbol, represented by the column. The output values canrepresent a good or bad bit, or a good or bad symbol (where a symbol canrepresent many bits). For example, an output of zero represents a goodsymbol and an output of one represents a bad symbol, so given that theHMM is in state 1 at a given time, there is a probability of B11 ofoutputting a 0, or good symbol, and a probability of B12 of outputting a1, or bad symbol.

The chromosome representation in 2104 shows how the HMM is convertedinto a chromosome for manipulation by the genetic algorithm. Each rowand matrix is lined up back to back to create a single vector that canthen be used in genetic operations such as crossover and mutation.

FIG. 22 is a detailed block diagram of the WSGA 53. It receives inputfrom the CSM 51 via the TCP/IP socket layer 531. Information about theWSGA is stored in a structure called WSGAInfo, and the memberchromosomes of the genetic algorithm are stored in 2201. Block 2202initializes the member chromosomes as shown in FIG. 24. Block 2203 isthe genetic algorithm used to determine the new radio system parametersas shown in FIG. 23, which links to a dynamic link library (DLL) toretrieve the mathematical fitness functions in block 2204. The finalsolution from the genetic algorithm is transmitted to the radio via aradio-specific Application Programmable Interface (API) of block 2205.

The WSGA chromosome structure is shown in the following table.Chromosome Parameters 0 Power 1 fc 2 Bandwidth 3 Symbol Rate 4Modulation 5 FEC 6 Payload/frame length 7 ARQ 8 Dynamic Range 9Equalization 10 Encryption 11 Antenna Configuration 12 Voice 13 NoiseCancellation (limiting) 14 Interference Temperature 15 TDD 16Proprietary 1 . . . . . . 31  ProprietaryThis table is viewed as a vector in the algorithm and operated upon as achromosome through genetic algorithm crossover and mutation procedures.The values of these table parameters determine the fitness of thechromosome and the behavior of the radio.

FIG. 23 is a flowchart showing the operation of the WSGA. The input 2301is a packet from the CSM 51 which is temporarily stored at 2302. Thepopulation of chromosomes is initialized in 2303 according to theroutine of FIG. 24. Decision block 2304 controls the genetic algorithmloop and exits the loop upon a stopping criteria, which could be acertain number of generations or after a decrease in performance gainper generation is detected (that is, the fitness of the currentgeneration did not differ significantly from the previous generation).While the loop is running, block 2305 selects parent chromosomes thatwill be used to generate offspring chromosomes to replace the populationthe next generation. Blocks 2306 and 2307 perform standard geneticalgorithm techniques of crossover and mutation, respectively. Block 2308evaluates the fitness values for each chromosome, both parent andoffspring. Block 2309 determines which members of the population toreplace using a relative fitness evaluation method of FIG. 26. Once thegenetic algorithm loop has exited, block 2310 transmits the systemparameters as defined in the best fit chromosome of the final generationto the radio via an API. Block 2311 also transmits the best fitchromosome along with the simulated fitness values to the CSM so the CSMcan compare the simulated fitness values to the real fitness values readfrom the radio after the new radio settings have been set.

FIG. 24 is the flowchart of the initialize population routine offunction block 2303 in FIG. 23. This routine first fills the initialpopulation of the WSGA with children received from the CSM and thenrandomly generates any more children required to fill the population.Block 2401 initializes the routine. Loop 2402 cycles through all childchromosomes received from the CSM, where block 2403 inputs the childinto the population and block 2404 evaluates the chromosomes fitnessvalues. Loop 2405 then cycles through the remaining populated indiceswhere block 2406 randomly generates chromosomes to fill the populationand block 2407 evaluates the fitness of the new chromosomes. Once thepopulation is filled, the routine exits 2408.

FIG. 25 is a flowchart of the evaluate member routine of function block2308. Starting at block 2501, the chromosome is translated to absoluteradio parameters (power in terms of dBm, frequency in Hz, etc.) storedin structure data through the radio-specific API at block 2502. Loop2503 cycles through all of the current fitness functions used toevaluate the members using an index variable i. During the loop, eachfitness function is evaluated by calling the function out of the“WSGAFitFunc.dll” dynamic link library (DLL) in block 2504. The DLL isuseful for dynamic linking because the radio system may be updated inreal-time with new or improved fitness evaluation functions withoutaltering the rest of the system. Block 2505 uses the function from theDLL to calculate the fitness for each fitness function, called anobjective by passing the data structure to the function as well as ameters structure, which is updated inside the DLL function to containsimulated meters of the radio's performance. When loop 2503 has finishedevaluating all of the fitness functions, the routine exits 2506.

FIG. 26 is a flowchart of the replace population member routine 2601based on a relative tournament selection scheme. Loop 2602 cyclesthrough by incrementing index i from 0 to the total population size.Each cycle, 2 members, designated as member[n] and member[k], are chosenfrom the population of parents and offspring at block 2603. Loop 2604then uses index j to cycle through all of the fitness functions.Decision blocks 2605, 2606 and 2607 decide which of the two members wonby comparing the fitness values associated with each objective. If theobjective of member[n] is greater than the objective of member[k] inblock 2605, then member[n] wins and block 2608 increments the fitnessvalue by adding the amount of weight associated with the current fitnessfunction being compared to the member's fitness. Else, if the objectiveof member[k] is larger than the objective of member[n] in block 2606,than member[k] wins and block 2609 increments member[k]'s fitness valueaccording the amount of weight on the function. If the two members'objectives are equal, a uniformly random number is generated between 0and 1, and if it is less than 0.5, member[n] wins the tournament;otherwise, member[k] wins and block 2610 updates the fitness value ofthe winning member.

After all objectives have been compared and the fitness values properlyincremented and loop 2604 has ended, members [n] and [k]'s fitness iscompared in block 2611, and if member[n]'s fitness is larger thanmember[k]'s fitness, then member[k] is removed from the population andmember[n] survives in the population to be a part of the next generationin block 2612; otherwise, member[n] is killed and member[k] survives tothe next generation in block 2613. After the entire population ofparents and offspring have been compared and the next population chosen,the routine exits 2614. This relative tournament selection mechanism isa way to compare population members and choose the best fit members forsurvival to the next generation when there are multiple objectives toconsider. The weights allow the system to adjust its priorities when itthinks one fitness function is more important than another (e.g.,minimizing the bit error rate may be more important than maximizing thedata rate, so the weights can help determine how much each matters).

The CSM evolutionary algorithm consists of a learning classifierfunction that classifies the observed channel model received from theWCGA or broadband channel sounder and a meta-genetic algorithm thatdetermines the appropriate fitness function, chromosome structure, andtemplates using the crossover operator based on knowledge from its shortand long term memories as well as the creative new solutions generatedfrom its mutation functions.

The genetic algorithm (GA) approach to adapting a wireless radioaccording to the present invention provides many benefits. First, it isa chaotic search with controllable boundaries that allow it to seek outand discover unique solutions efficiently. In unknown channels, chaoticbehavior could produce a solution that is absolutely correct but may becounter-intuitive. By being able to control the search space by limitingthe number of generations, crossover rates, mutation rates, fitnessevaluations, etc., the cognitive system can ensure legal and regulatorycompliance as well as efficient searches.

Another major benefit of the GA approach is the versatility of thecognitive process to any radio. While a software radio is an ideal hostsystem for a cognitive processor, any legacy radio with the smallestamount of adaptability can benefit from our cognitive processes. Thecognitive system defines the radio chromosome, where each generepresents a radio parameter such as transmit power, frequency,modulation, etc. The adaptation process of the WSGA is performed on thechromosomes to develop new values for each gene, which is then used toadapt the radio settings. If a radio cannot adjust a particularparameter, then the adaptation process will ignore the gene representingthe parameter. Also, if there are certain parameters unique to aparticular adaptable radio, a few genes can be left unused so as to beused for such proprietary purposes. See, again the Chromosome Parameterstable above.

Because each radio will have a unique method of adapting the radioparameters and each parameter will mean something different, a smallhardware interface is required to connect the WSGA to the radio. Thehardware interface will take the chromosome from the WSGA and use thegene values to properly update the radio. The hardware interface is asmall piece of software required for each radio while the cognitiveprocessing engine remains system-independent. While the independence ofthe WSGA and the cognitive processor to the radio allows any adaptableradio to become a cognitive radio, it should be clear that the moreadaptable a radio is, the more powerful the cognition becomes.

Each of the three main algorithms (CSM, WSGA and WCGA) can be co-locatedor distributed. “Co-located” means that the three algorithms exist inthe same radio with shared memory and processing. “Distributed” meansthat one or more of the algorithms exists on another radio with separatememory and processing. The knowledge base developed in long term memorymay also be distributed, allowing for physically distributed cognitiveconsciousness that appear logically the same to the CSM.

For example, a base station unit (BSU) may have both the WCGA and CSM inits system to model the radio environment and maintain the long termmemory that the subscriber units can access for their independent WSGAalgorithms running locally. This scenario allows for a common memorybank and associated realization of the radio environment, but eachsystem can adapt independently. If a radio adapts to a set of parametersthat are more successful in the radio environment, it can thencommunicate its successful adaptation back to the BSU for better futureadaptation by all radios. Another scenario could be that the radio hasits own sensing mechanism, but sends the channel model to another radiofor CSM and WSGA processing. The output of the WSGA could then be sentback to the original radio for adaptation. In both examples, the longterm memory could be mapped to a local device or set of devices. Thisdistributed knowledge base concept allows the power of the GA approachto be realized, because as the network becomes more complex, theknowledge base has a mechanism to scale with it.

The method of exchanging data between the algorithms must allow for bothco-located and distributed systems. We therefore chose to use asocket-driven TCP/IP protocol stack as illustrated in FIG. 27, with theWCGA 52, CSM 51 and WSGA 53 algorithms connected as shown. The interfacebetween the systems is all packet based and is sent using TCP to aspecific socket in the system. The basic TCP datagram is illustrated inFIG. 28. The socket-based communications is convenient because it has acommon port to connect to but is also related to the IP address of theradio system. For co-located algorithms, the IP address can be simplyset to the system's ow!n IP address or the internal loopback address(usually defined as 127.0.0.1). To communicate the information betweendistributed systems, a change in the IP address is all that is required.

When the WCGA has a channel model for the CSM, it opens a TCP socketconnected to port WCGA_CSM_TCP_PORT. A packet of information is thensent from the WCGA to the CSM and the connection closed. The sequence ofevents for passing the data between the WCGA and the CSM is shown inFIG. 29. The WCGA-CSM packet for passing channel statistics and a bursterror histogram is shown in FIG. 30.

The CSM to WSGA communications is very similar to the WCGA to CSMcommunications; however, now the CSM opens the communications when thepacket is ready. The CSM opens a TCP socket in the WSGA on partWSGA_TCP_PORT. The packet is sent, and the connection is closed. Thesequence of events for passing the data between the CSM and the WSGA isshown in FIG. 31. The CSM-WSGA packet for passing the WSGA controlinformation is shown in FIG. 32.

The WSGA then passes information back to the CSM regarding the newsystem chromosome developed. Again, the communications are very similarto the previous method, only the WSGA opens a TCP socket on the CSM onport WSGA_CSM_TCP_Port. The packet is sent, and the connection isclosed. The sequence of events for passing the data between the WSGA andthe CSM is shown in FIG. 33. The WSGA-CSM packet for passing the WSGAfinal information is shown in FIG. 34.

While the invention has been described in terms of preferredembodiments, those skilled in the art will recognize that the inventioncan be practiced with modification within the spirit and scope of theappended claims.

1. A cognitive radio engine for controlling an adaptive radio, whereinthe cognitive radio engine defines a radio chromosome, where each generepresents a radio parameter, said cognitive engine comprising: awireless channel genetic algorithm (WCGA) receiving channel informationfrom the adaptive radio and modeling the channel; a cognitive systemmonitor (CSM) receiving the modeled channel from the WCGA anddetermining if a new radio configuration is needed, building trends fromthe WCGA and radio statistics, and developing a set of fitnessfunctions; and a wireless system genetic algorithm (WSGA) receiving theset of fitness functions from the CSM and developing a system chromosomeand creating a fitness to match the fitness goal function, said WSGApassing a new system configuration to the adaptive radio which, in turn,reconfigures itself according to the new system configuration, saidcognitive radio engine implementing a chaotic search with controllableboundaries to seek out and discover unique solutions efficiently.
 2. Thecognitive radio engine recited in claim 1, wherein the chaotic search iscontrolled by the cognitive radio engine by limiting the range ofachievable gene values in the system chromosome to ensure legal andregulatory compliance.
 3. The cognitive radio engine recited in claim 1,wherein the WSGA performs an adaptation process on the chromosomes todevelop new values for each gene, which is then used to adapt the radiosettings.
 4. A cognitive radio system comprising: an adaptive radioreceiving data and radio frequency (RF) signals on a channel, generatingchannel performance information and responsive to configurationinformation to reconfigure baseband radio parameters according to theconfiguration information; and a cognitive radio engine for controllingan adaptive radio, wherein the cognitive radio engine defines a radiochromosome, where each gene represents a radio parameter, said cognitiveengine comprising: a wireless channel genetic algorithm (WCGA) receivingchannel information from the adaptive radio and modeling the channel; acognitive system monitor (CSM) receiving the modeled channel from theWCGA and determining if a new radio configuration is needed, buildingtrends from the WCGA and radio statistics, and developing a set offitness functions; and a wireless system genetic algorithm (WSGA)receiving the set of fitness functions from the CSM and developing asystem chromosome and creating a fitness to match the fitness goalfunction, said WSGA passing a new system configuration information tothe adaptive radio which, in turn, reconfigures itself according to thenew system configuration, said cognitive radio engine implementing achaotic search with controllable boundaries to seek out and discoverunique solutions efficiently.
 5. The cognitive radio system recited inclaim 4, wherein the chaotic search is controlled by the cognitive radioengine by limiting the range of achievable gene values in the systemchromosome to ensure legal and regulatory compliance.
 6. The cognitiveradio engine recited in claim 4, wherein the WSGA performs an adaptationprocess on the chromosomes to develop new values for each gene, which isthen used to adapt the radio settings.
 7. A radio network comprising: afirst adaptive radio transmitting and receiving data and radio frequency(RF) signals on a cognitive radio channel, generating channelperformance information and responsive to configuration information toreconfigure baseband radio parameters according to the configurationinformation; a second adaptive radio transmitting and receiving data andradio frequency (RF) signals on said cognitive radio channel, generatingchannel performance information and responsive to configurationinformation to reconfigure baseband radio parameters according to theconfiguration information, said cognitive radio channel establishing acognitive radio link between said first and second adaptive radios; andfirst and second cognitive radio engines connected to and controllingsaid first and second adaptive radios, respectively, wherein the firstand second cognitive radio engines define a radio chromosome, where eachgene represents a radio parameter, each said cognitive radio enginecomprising: a wireless channel genetic algorithm (WCGA) receivingchannel information from the adaptive radio and modeling the channel; acognitive system monitor (CSM) receiving the modeled channel from theWCGA and determining if a new radio configuration is needed, buildingtrends from the WCGA and radio statistics, and developing a set offitness functions; and a wireless system genetic algorithm (WSGA)receiving the set of fitness functions from the CSM and developing asystem chromosome and creating a fitness to match the fitness goalfunction, said WSGA passing a new system configuration information tothe adaptive radio which, in turn, reconfigures itself according to thenew system configuration, said cognitive radio engine implementing achaotic search with controllable boundaries to seek out and discoverunique solutions efficiently.
 8. The radio network recited in claim 7,wherein the chaotic search is controlled by each of the cognitive radioengines by limiting the range of achievable gene values in the systemchromosome to ensure legal and regulatory compliance.
 9. The radionetwork recited in claim 7, wherein the WSGA performs an adaptationprocess on the chromosomes to develop new values for each gene, which isthen used to adapt the radio settings.
 10. The radio network recited inclaim 7, wherein the WCGA, the CSM and the WSGA are co-located at eachof the cognitive radio engines.
 11. The radio network recited in claim7, wherein one or more of the WCGA, the CSM and the WSGA are distributedamong two or more cognitive radio engines.
 12. The radio network recitedin claim 11, wherein a socket-driven TCP/IP (Transfer ControlProtocol/Internet Protocol) stack is used to communicate informationbetween distributed algorithms.
 13. The radio network recited in claim7, further comprising: a first plurality of broadband users; a firstrouter to which the first plurality of broadband users are connected,said first router being connected to said first adaptive radio; a secondplurality of broadband users; and a second router to which the firstplurality of broadband users are connected, said second router beingconnected to said second adaptive radio.
 14. The radio network recitedin claim 13, wherein at least one of said first and second routers isconnected to the Internet, providing Internet access to said first andsecond plurality of broadband users.
 15. A method for controlling anadaptive radio which defines a radio chromosome, where each generepresents a radio parameter, comprising the steps of: receiving by awireless channel genetic algorithm (WCGA) channel information from theadaptive radio and modeling the channel; receiving by a cognitive systemmonitor (CSM) the modeled channel from the WCGA and determining if a newradio configuration is needed, building trends from the WCGA and radiostatistics, implementing a chaotic search with controllable boundariesto seek out and discover unique solutions efficiently, and developing aset of fitness functions; and receiving by a wireless system geneticalgorithm (WSGA) the set of fitness functions from the CSM anddeveloping a system chromosome and creating a fitness to match thefitness goal function, said WSGA passing a new system configuration tothe adaptive radio which, in turn, reconfigures itself according to thenew system configuration.
 16. The method for controlling an adaptiveradio recited in claim 15, wherein the chaotic search is controlled bylimiting the range of achievable gene values in the system chromosome toensure legal and regulatory compliance.
 17. The method for controllingan adaptive radio recited in claim 15, wherein the WSGA performs anadaptation process on the chromosomes to develop new values for eachgene, which is then used to adapt the radio settings.